# 进程  带变量
"""
多进程对于全局变量访问，在每个全局变量里面都放一个m变量，保证每个进程访问变量互不干扰

进程：
    快速执行，并行；不关注前后  只是为了快速完成

运算类：用进程；线程耗时
不管是可变不可变，都会在进程中存一份副本
    count = 1  # 不可变类型
    lst = []  # 可变类型
"""
import os
from multiprocessing import Process
from time import sleep

# 公共变量：全局
count = 1  # 不可变类型
lst = []  # 可变类型


def task1(second):
    global count
    while True:
        sleep(second)
        count += 1
        lst.append(str(count) + "-task1")
        print("这是任务1----------", count, lst)


def task2(second):
    global count
    while True:
        sleep(second)
        count += 1
        lst.append(str(count) + "-task2")
        print("这是任务2----------", count, lst)


# 创建进程
if __name__ == '__main__':
    p1 = Process(target=task1, name="task1", args=(1,))  # args=(1,)  元组当只有一个元素的时候加了，才是否则就是字符串
    p1.start()
    p2 = Process(target=task2, name="task2", args=(2,))
    p2.start()

    while True:
        sleep(1)
        count += 1
        print("main----------", count)
